// 练习4：使用flowRight写一个sanitizeNames()函数，返回一个下划线连接的小写字符串，把数组中的name
//转换为这种形式: 例如：sanitizeNames(["Hello World"]) => ["hello_world"]
const fp = require("lodash/fp");

// horsepower 马力
// dollar_value 价格
// in_stock

const cars = [
  {
    name: "Ferrari FF",
    horsepower: 60,
    dollar_value: 700000,
    in_stock: true,
  },
  {
    name: "Spyker C12 Zagato",
    horsepower: 650,
    dollar_value: 648000,
    in_stock: false,
  },
  {
    name: "Jaguar XKR-s",
    horsepower: 550,
    dollar_value: 132000,
    in_stock: false,
  },
  {
    name: "Audi R8",
    horsepower: 525,
    dollar_value: 114200,
    in_stock: false,
  },
  {
    name: "Aston Martin One-77",
    horsepower: 750,
    dollar_value: 1850000,
    in_stock: true,
  },
  {
    name: "Pagani Huayra",
    horsepower: 700,
    dollar_value: 1300000,
    in_stock: false,
  },
];

// 已提供方法
const _underscore = fp.replace(/\W+/g, "_");

const sanitizeNames = fp.map(
  fp.flowRight(_underscore, fp.toLower, fp.prop("name"))
);
console.log(sanitizeNames(cars));
